package com.party.core.model.crowdfund;


import com.party.common.annotation.ExcelField;

import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * 众筹支持带支持者信息
 * Created by wei.li
 *
 * @date 2017/2/17 0017
 * @time 10:37
 */
public class SupportWithMember extends Support {
    private static final long serialVersionUID = 6136593330887274455L;

    //支持者名称
    private String favorerName;

    //支持者图像
    private String favorerLogo;

    //支持金额
    private Float payment;

    //分销关系编号
    private String relationId;

    //支持者公司
    private String favorerCompany;

    //支持者工作
    private String favorerJobTitle;

    //支持者电话
    private String favorerMobile;

    //支持订单状态
    private Integer status;

    //开始时间
    private String startTime;

    //是否分组
    private Boolean groupBy;

    //编号集合
    private Set<String> ids;

    //回复列表
    private List<ProjectComment> projectCommentList;

    // 商户名称
    private String merchantName;

    // 商户编号
    private String merchantId;

    // 支持时间
    private Date favorerDate;

    // 是否转入（0：否/1：是）
    private Integer isTransfer;

    //支持者显示开关  0代表所有人可以看,1代表只有自己可以看',
    private Integer supportSwitch;

    private String payStatusName;

    private String isRefundPlan;//是否显示退款计划详情

    private String isRefundDetails;//是否显示退款

    public String getIsRefundDetails() {
        return isRefundDetails;
    }

    public void setIsRefundDetails(String isRefundDetails) {
        this.isRefundDetails = isRefundDetails;
    }

    public String getIsRefundPlan() {
        return isRefundPlan;
    }

    public void setIsRefundPlan(String isRefundPlan) {
        this.isRefundPlan = isRefundPlan;
    }

    public Integer getSupportSwitch() {
        return supportSwitch;
    }

    public void setSupportSwitch(Integer supportSwitch) {
        this.supportSwitch = supportSwitch;
    }

    @ExcelField(title = "支持者", align = 2, sort = 1)
    public String getFavorerName() {
        return favorerName;
    }

    public void setFavorerName(String favorerName) {
        this.favorerName = favorerName;
    }

    public String getFavorerLogo() {
        return favorerLogo;
    }

    public void setFavorerLogo(String favorerLogo) {
        this.favorerLogo = favorerLogo;
    }

    @ExcelField(title = "支持金额", align = 2, sort = 5)
    public Float getPayment() {
        return payment;
    }

    public void setPayment(Float payment) {
        this.payment = payment;
    }


    public String getRelationId() {
        return relationId;
    }

    public void setRelationId(String relationId) {
        this.relationId = relationId;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    @ExcelField(title = "公司", align = 2, sort = 2)
    public String getFavorerCompany() {
        return favorerCompany;
    }

    public void setFavorerCompany(String favorerCompany) {
        this.favorerCompany = favorerCompany;
    }

    @ExcelField(title = "职位", align = 2, sort = 3)
    public String getFavorerJobTitle() {
        return favorerJobTitle;
    }

    public void setFavorerJobTitle(String favorerJobTitle) {
        this.favorerJobTitle = favorerJobTitle;
    }

    @ExcelField(title = "联系电话", align = 2, sort = 4)
    public String getFavorerMobile() {
        return favorerMobile;
    }

    public void setFavorerMobile(String favorerMobile) {
        this.favorerMobile = favorerMobile;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public List<ProjectComment> getProjectCommentList() {
        return projectCommentList;
    }

    public void setProjectCommentList(List<ProjectComment> projectCommentList) {
        this.projectCommentList = projectCommentList;
    }

    public Boolean getGroupBy() {
        return groupBy;
    }

    public void setGroupBy(Boolean groupBy) {
        this.groupBy = groupBy;
    }

    public Set<String> getIds() {
        return ids;
    }

    public void setIds(Set<String> ids) {
        this.ids = ids;
    }

    @ExcelField(title = "商户名称", align = 2, sort = 6)
    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public String getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(String merchantId) {
        this.merchantId = merchantId;
    }

    public Integer getIsTransfer() {
        return isTransfer;
    }

    public void setIsTransfer(Integer isTransfer) {
        this.isTransfer = isTransfer;
    }

    @ExcelField(title = "状态", align = 2, sort = 7)
    public String getPayStatusName() {
        return payStatusName;
    }

    public void setPayStatusName(String payStatusName) {
        this.payStatusName = payStatusName;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;

        SupportWithMember that = (SupportWithMember) o;

        if (favorerName != null ? !favorerName.equals(that.favorerName) : that.favorerName != null) return false;
        if (favorerLogo != null ? !favorerLogo.equals(that.favorerLogo) : that.favorerLogo != null) return false;
        if (payment != null ? !payment.equals(that.payment) : that.payment != null) return false;
        if (relationId != null ? !relationId.equals(that.relationId) : that.relationId != null) return false;
        if (favorerCompany != null ? !favorerCompany.equals(that.favorerCompany) : that.favorerCompany != null)
            return false;
        if (favorerJobTitle != null ? !favorerJobTitle.equals(that.favorerJobTitle) : that.favorerJobTitle != null)
            return false;
        if (favorerMobile != null ? !favorerMobile.equals(that.favorerMobile) : that.favorerMobile != null)
            return false;
        if (status != null ? !status.equals(that.status) : that.status != null) return false;
        if (startTime != null ? !startTime.equals(that.startTime) : that.startTime != null) return false;
        if (groupBy != null ? !groupBy.equals(that.groupBy) : that.groupBy != null) return false;
        if (ids != null ? !ids.equals(that.ids) : that.ids != null) return false;
        return projectCommentList != null ? projectCommentList.equals(that.projectCommentList) : that.projectCommentList == null;

    }

    @Override
    public int hashCode() {
        int result = super.hashCode();
        result = 31 * result + (favorerName != null ? favorerName.hashCode() : 0);
        result = 31 * result + (favorerLogo != null ? favorerLogo.hashCode() : 0);
        result = 31 * result + (payment != null ? payment.hashCode() : 0);
        result = 31 * result + (relationId != null ? relationId.hashCode() : 0);
        result = 31 * result + (favorerCompany != null ? favorerCompany.hashCode() : 0);
        result = 31 * result + (favorerJobTitle != null ? favorerJobTitle.hashCode() : 0);
        result = 31 * result + (favorerMobile != null ? favorerMobile.hashCode() : 0);
        result = 31 * result + (status != null ? status.hashCode() : 0);
        result = 31 * result + (startTime != null ? startTime.hashCode() : 0);
        result = 31 * result + (groupBy != null ? groupBy.hashCode() : 0);
        result = 31 * result + (ids != null ? ids.hashCode() : 0);
        result = 31 * result + (projectCommentList != null ? projectCommentList.hashCode() : 0);
        return result;
    }

    @Override
    public String toString() {
        return "SupportWithMember{" +
                "favorerName='" + favorerName + '\'' +
                ", favorerLogo='" + favorerLogo + '\'' +
                ", payment=" + payment +
                ", relationId='" + relationId + '\'' +
                ", favorerCompany='" + favorerCompany + '\'' +
                ", favorerJobTitle='" + favorerJobTitle + '\'' +
                ", favorerMobile='" + favorerMobile + '\'' +
                ", status=" + status +
                ", startTime='" + startTime + '\'' +
                ", groupBy=" + groupBy +
                ", ids=" + ids +
                ", projectCommentList=" + projectCommentList +
                '}';
    }

    @ExcelField(title = "支持时间", align = 2, sort = 7)
    public Date getFavorerDate() {
        return favorerDate;
    }

    public void setFavorerDate(Date favorerDate) {
        this.favorerDate = favorerDate;
    }
}
